home *** CD-ROM | disk | FTP | other *** search
/ Everything For A Hacker / 19990506-[HACK].iso / CRACKS / TNO-K16P.ZIP / TNO-keytext.v1.16.patch.cpp < prev    next >
C/C++ Source or Header  |  1998-06-23  |  2KB  |  79 lines

  1. /* written by Prophecy [tNO] (23rd June 1998)
  2.  * compiled with borland c++ v5.02
  3.  *
  4.  * this source has been included with this patch for educational purposes, so
  5.  * other crackers wanting to learn can do so by examining this source file.
  6.  */
  7.  
  8. #include <stdio.h>
  9. #include <conio.h>
  10. #include <process.h>
  11.  
  12. int main(){
  13.  
  14. FILE *fp;
  15.  
  16. clrscr();
  17. printf("┌─────── ░ ─── ▄ ─────── ░ ────────────┐\n");
  18. printf("■▀██▓▀███▓▀██▓▀██▓▄   ▄▓█▓ ▀▓██▓▀███▓▀ │\n");
  19. printf("│  ▀░ ███▓ █░  ███▀▓▄ ███▓  ███▓ ███▓  │\n");
  20. printf("│    ░███▓    ░███  █████▓ ░███▓ ███▓  │\n");
  21. printf("│   ▄▓███▓▄  ▄▓███▓▄ ▀▓██▓▄▓███▓▄▓██▓▄ │\n");
  22. printf("└───────────────────── ▀▀▓ ────────────┘\n");
  23. printf("\nPatch for Keytext v1.16 (304 640 bytes)");
  24. printf("\nWritten by Prophecy [tNO] (23rd June 1998)\n\n");
  25.  
  26.  
  27. fp=fopen("keytext.exe","rb+");
  28. if(fp==NULL){ /* check if the file is available for patching */
  29. printf("Fatal error! (don't you just love those 2 words? :)\n\n");
  30. printf("Could not apply patch, probably because the file is not in the current\n");
  31. printf("directory, is already in use by another application or is in read-only mode.\n");
  32. return -1; /* terminate the patcher */
  33. }
  34.  
  35. /* check to see if the the filesize match */
  36.  
  37. int fstat(int handle, struct stat *statbuf);
  38.  
  39. /* check to see if the checksum match */
  40.  
  41. /* do the patching */
  42.  
  43. /* prevent prog from deleting name from registry */
  44.  
  45. fseek(fp,0x1d8c4L,SEEK_SET);
  46. fputc(0xe9,fp);
  47. fseek(fp,0x1d8c5L,SEEK_SET);
  48. fputc(0x38,fp);
  49. fseek(fp,0x1d8c6L,SEEK_SET);
  50. fputc(0x05,fp);
  51. fseek(fp,0x1d8c7L,SEEK_SET);
  52. fputc(0x00,fp);
  53. fseek(fp,0x1d8c8L,SEEK_SET);
  54. fputc(0x00,fp);
  55. fseek(fp,0x1d8c9L,SEEK_SET);
  56. fputc(0x90,fp);
  57. fseek(fp,0x1d8caL,SEEK_SET);
  58. fputc(0x90,fp);
  59.  
  60. /* prevent it from crashing when you try and use keytext to paste/type macros */
  61.  
  62. fseek(fp,0x1b7fbL,SEEK_SET);
  63. fputc(0x75,fp);
  64.  
  65.  
  66. fclose(fp); /* close the target */
  67.  
  68. /* register Keytext to Prophecy [tNO] (there are plenty of keygens available for
  69. this programme, just get one and modify the HKLM\Software\MJMSoft\Keytext\Reg Number
  70. yourself, make sure the 5th char of your code isn't a '-' or a '/', ie get
  71. another keygen if it is)... i have already spent too much time on this target
  72. and although the keygen is not hard, it's still time consuming to write one */
  73.  
  74. system("regedit keytext.v1.16.serial.reg");
  75.  
  76. printf("Target successfully patched!");
  77. return 0;
  78. }
  79.